<?php

//UMA new
namespace App\Http\Controllers\Api;

use App\Http\Controllers\Controller;

class BaseController extends Controller
{
    /**
     * 成功返回
     * 正常に返されました
     * @param $data
     * @param string $msg
     * @return \Illuminate\Http\JsonResponse
     */
    public function success($data, $msg = "success")
    {
        $this->parseNull($data);
        $result = [
            "code" => 200,
            "msg" => $msg,
            "data" => $data,
        ];
        return response()->json($result, 200);
    }


    /**
     * 失败返回
     * 返品に失敗する
     * @param string $code
     * @param string $data
     * @param string $msg
     * @return \Illuminate\Http\JsonResponse
     */
    public function error($code = "422", $data = "", $msg = "fail")
    {
        $result = [
            "code" => $code,
            "msg" => $msg,
            "data" => $data
        ];
        return response()->json($result, 200);
    }

    /**
     * 如果返回的数据中有 null 则那其值修改为空 （安卓和IOS 对null型的数据不友好，会报错）
     * 返されたデータにnullがある場合、その値は空に変更されます（AndroidおよびIOSはnullデータに対応しておらず、エラーを報告します）
     * @param $data
     */
    private function parseNull(&$data)
    {
        if (is_array($data)) {
            foreach ($data as &$v) {
                $this->parseNull($v);
            }
        } else {
            if (is_null($data)) {
                $data = "";
            }
        }
    }
}
